Face Generation

In this project, you'll use generative adversarial networks to generate new images of faces.

Get the Data

You'll be using two datasets in this project:

  • MNIST
  • CelebA

Since the celebA dataset is complex and you're doing GANs in a project for the first time, we want you to test your neural network on MNIST before CelebA. Running the GANs on MNIST will allow you to see how well your model trains sooner.

If you're using FloydHub, set data_dir to "/input" and use the FloydHub data ID "R5KrjnANiKVhLWAkpXhNBe".

In [1]:
data_dir = './data'

# FloydHub - Use with data ID "R5KrjnANiKVhLWAkpXhNBe"
#data_dir = '/input'


"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
import helper

helper.download_extract('mnist', data_dir)
helper.download_extract('celeba', data_dir)
Found mnist Data
Found celeba Data

Explore the Data

MNIST

As you're aware, the MNIST dataset contains images of handwritten digits. You can view the first number of examples by changing show_n_images.

In [2]:
show_n_images = 25

"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
%matplotlib inline
import os
from glob import glob
from matplotlib import pyplot

mnist_images = helper.get_batch(glob(os.path.join(data_dir, 'mnist/*.jpg'))[:show_n_images], 28, 28, 'L')
pyplot.imshow(helper.images_square_grid(mnist_images, 'L'), cmap='gray')
Out[2]:
<matplotlib.image.AxesImage at 0x7f7e99827a90>

CelebA

The CelebFaces Attributes Dataset (CelebA) dataset contains over 200,000 celebrity images with annotations. Since you're going to be generating faces, you won't need the annotations. You can view the first number of examples by changing show_n_images.

In [3]:
show_n_images = 25

"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
mnist_images = helper.get_batch(glob(os.path.join(data_dir, 'img_align_celeba/*.jpg'))[:show_n_images], 28, 28, 'RGB')
pyplot.imshow(helper.images_square_grid(mnist_images, 'RGB'))
Out[3]:
<matplotlib.image.AxesImage at 0x7f7e997546d8>

Preprocess the Data

Since the project's main focus is on building the GANs, we'll preprocess the data for you. The values of the MNIST and CelebA dataset will be in the range of -0.5 to 0.5 of 28x28 dimensional images. The CelebA images will be cropped to remove parts of the image that don't include a face, then resized down to 28x28.

The MNIST images are black and white images with a single color channel while the CelebA images have 3 color channels (RGB color channel).

Build the Neural Network

You'll build the components necessary to build a GANs by implementing the following functions below:

  • model_inputs
  • discriminator
  • generator
  • model_loss
  • model_opt
  • train

Check the Version of TensorFlow and Access to GPU

This will check to make sure you have the correct version of TensorFlow and access to a GPU

In [4]:
"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
from distutils.version import LooseVersion
import warnings
import tensorflow as tf

# Check TensorFlow Version
assert LooseVersion(tf.__version__) >= LooseVersion('1.0'), 'Please use TensorFlow version 1.0 or newer.  You are using {}'.format(tf.__version__)
print('TensorFlow Version: {}'.format(tf.__version__))

# Check for a GPU
if not tf.test.gpu_device_name():
    warnings.warn('No GPU found. Please use a GPU to train your neural network.')
else:
    print('Default GPU Device: {}'.format(tf.test.gpu_device_name()))
TensorFlow Version: 1.1.0
Default GPU Device: /gpu:0

Input

Implement the model_inputs function to create TF Placeholders for the Neural Network. It should create the following placeholders:

  • Real input images placeholder with rank 4 using image_width, image_height, and image_channels.
  • Z input placeholder with rank 2 using z_dim.
  • Learning rate placeholder with rank 0.

Return the placeholders in the following the tuple (tensor of real input images, tensor of z data)

In [5]:
import problem_unittests as tests

def model_inputs(image_width, image_height, image_channels, z_dim):
    """
    Create the model inputs
    :param image_width: The input image width
    :param image_height: The input image height
    :param image_channels: The number of image channels
    :param z_dim: The dimension of Z
    :return: Tuple of (tensor of real input images, tensor of z data, learning rate)
    """
    input_ = tf.placeholder(dtype=tf.float32, shape=(None, image_width, image_height, image_channels))
    z = tf.placeholder(dtype=tf.float32, shape=(None, z_dim))
    lr = tf.placeholder(dtype=tf.float32, shape=None)
    return input_, z, lr


"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_model_inputs(model_inputs)
Tests Passed

Discriminator

Implement discriminator to create a discriminator neural network that discriminates on images. This function should be able to reuse the variables in the neural network. Use tf.variable_scope with a scope name of "discriminator" to allow the variables to be reused. The function should return a tuple of (tensor output of the discriminator, tensor logits of the discriminator).

In [6]:
def discriminator(images, reuse=False):
    """
    Create the discriminator network
    :param images: Tensor of input image(s)
    :param reuse: Boolean if the weights should be reused
    :return: Tuple of (tensor output of the discriminator, tensor logits of the discriminator)
    """
    alpha = 0.01
    with tf.variable_scope('discriminator', reuse=reuse):
        # Input layer is 28*28
        conv1 = tf.layers.conv2d(inputs=images, filters=128, kernel_size=5, strides=2, padding='SAME', activation=None, kernel_initializer=tf.contrib.layers.xavier_initializer())
        conv1 = tf.maximum(conv1, alpha*conv1)
        # > 14*14
        
        conv2 = tf.layers.conv2d(inputs=conv1, filters=256, kernel_size=5, strides=2, padding='SAME', activation=None)
        conv2 = tf.layers.batch_normalization(inputs=conv2, training=True)
        conv2 = tf.maximum(conv2, alpha*conv2)
        # > 7*7

        conv3 = tf.layers.conv2d(inputs=conv2, filters=512, kernel_size=5, strides=2, padding='SAME', activation=None)
        conv3 = tf.layers.batch_normalization(inputs=conv3, training=True)
        conv3 = tf.maximum(conv3, alpha*conv3)
        # > 4*4
        
        flat = tf.reshape(conv3, (-1, 4*4*512))
        logits = tf.layers.dense(inputs=flat, units=1, activation=None)
        out = tf.sigmoid(logits)
        
        return out, logits


"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_discriminator(discriminator, tf)
Tests Passed

Generator

Implement generator to generate an image using z. This function should be able to reuse the variables in the neural network. Use tf.variable_scope with a scope name of "generator" to allow the variables to be reused. The function should return the generated 28 x 28 x out_channel_dim images.

In [7]:
def generator(z, out_channel_dim, is_train=True):
    """
    Create the generator network
    :param z: Input z
    :param out_channel_dim: The number of channels in the output image
    :param is_train: Boolean if generator is being used for training
    :return: The tensor output of the generator
    """
    alpha = 0.1
    with tf.variable_scope('generator', reuse=not is_train):
        # First fully connected layer
        fc = tf.layers.dense(inputs=z, units=7*7*512, activation=None)
        conv1 = tf.reshape(fc, shape=(-1, 7, 7, 512))
        conv1 = tf.layers.batch_normalization(inputs=conv1, training=is_train)
        conv1 = tf.maximum(conv1, alpha*conv1)
        # > 7*7
        
        conv2 = tf.layers.conv2d_transpose(inputs=conv1, filters=256, kernel_size=5, strides=2, padding='SAME', activation=None)
        conv2 = tf.layers.batch_normalization(inputs=conv2, training=is_train)
        conv2 = tf.maximum(conv2, alpha*conv2)
        # > 14*14
        
        # Output layer, 28*28
        logits = tf.layers.conv2d_transpose(inputs=conv2, filters=out_channel_dim, kernel_size=5, strides=2, padding='SAME', activation=None)
        
        out = tf.tanh(logits)
    
    return out


"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_generator(generator, tf)
Tests Passed

Loss

Implement model_loss to build the GANs for training and calculate the loss. The function should return a tuple of (discriminator loss, generator loss). Use the following functions you implemented:

  • discriminator(images, reuse=False)
  • generator(z, out_channel_dim, is_train=True)
In [8]:
def model_loss(input_real, input_z, out_channel_dim):
    """
    Get the loss for the discriminator and generator
    :param input_real: Images from the real dataset
    :param input_z: Z input
    :param out_channel_dim: The number of channels in the output image
    :return: A tuple of (discriminator loss, generator loss)
    """
    g_model = generator(input_z, out_channel_dim)
    d_model_real, d_logits_real = discriminator(input_real)
    d_model_fake, d_logits_fake = discriminator(g_model, reuse=True)

    smooth_factor = 0.1 # reduce true "correct" by this factor
    d_loss_real = tf.reduce_mean(
        tf.nn.sigmoid_cross_entropy_with_logits(logits=d_logits_real, labels=tf.ones_like(d_model_real) * (1 - smooth_factor)))
    d_loss_fake = tf.reduce_mean(
        tf.nn.sigmoid_cross_entropy_with_logits(logits=d_logits_fake, labels=tf.zeros_like(d_model_fake)))
    g_loss = tf.reduce_mean(
        tf.nn.sigmoid_cross_entropy_with_logits(logits=d_logits_fake, labels=tf.ones_like(d_model_fake)))

    d_loss = d_loss_real + d_loss_fake

    return d_loss, g_loss


"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_model_loss(model_loss)
Tests Passed

Optimization

Implement model_opt to create the optimization operations for the GANs. Use tf.trainable_variables to get all the trainable variables. Filter the variables with names that are in the discriminator and generator scope names. The function should return a tuple of (discriminator training operation, generator training operation).

In [9]:
def model_opt(d_loss, g_loss, learning_rate, beta1):
    """
    Get optimization operations
    :param d_loss: Discriminator loss Tensor
    :param g_loss: Generator loss Tensor
    :param learning_rate: Learning Rate Placeholder
    :param beta1: The exponential decay rate for the 1st moment in the optimizer
    :return: A tuple of (discriminator training operation, generator training operation)
    """
    # Get weights and bias to update
    t_vars = tf.trainable_variables()
    d_vars = [var for var in t_vars if var.name.startswith('discriminator')]
    g_vars = [var for var in t_vars if var.name.startswith('generator')]

    # Optimize
    with tf.control_dependencies(tf.get_collection(tf.GraphKeys.UPDATE_OPS)):
        d_train_opt = tf.train.AdamOptimizer(learning_rate, beta1=beta1).minimize(d_loss, var_list=d_vars)
        g_train_opt = tf.train.AdamOptimizer(learning_rate, beta1=beta1).minimize(g_loss, var_list=g_vars)

    return d_train_opt, g_train_opt


"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_model_opt(model_opt, tf)
Tests Passed

Neural Network Training

Show Output

Use this function to show the current output of the generator during training. It will help you determine how well the GANs is training.

In [10]:
"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
import numpy as np

def show_generator_output(sess, n_images, input_z, out_channel_dim, image_mode):
    """
    Show example output for the generator
    :param sess: TensorFlow session
    :param n_images: Number of Images to display
    :param input_z: Input Z Tensor
    :param out_channel_dim: The number of channels in the output image
    :param image_mode: The mode to use for images ("RGB" or "L")
    """
    cmap = None if image_mode == 'RGB' else 'gray'
    z_dim = input_z.get_shape().as_list()[-1]
    example_z = np.random.uniform(-1, 1, size=[n_images, z_dim])

    samples = sess.run(
        generator(input_z, out_channel_dim, False),
        feed_dict={input_z: example_z})

    images_grid = helper.images_square_grid(samples, image_mode)
    pyplot.imshow(images_grid, cmap=cmap)
    pyplot.show()

Train

Implement train to build and train the GANs. Use the following functions you implemented:

  • model_inputs(image_width, image_height, image_channels, z_dim)
  • model_loss(input_real, input_z, out_channel_dim)
  • model_opt(d_loss, g_loss, learning_rate, beta1)

Use the show_generator_output to show generator output while you train. Running show_generator_output for every batch will drastically increase training time and increase the size of the notebook. It's recommended to print the generator output every 100 batches.

In [11]:
def train(epoch_count, batch_size, z_dim, learning_rate, beta1, get_batches, data_shape, data_image_mode):
    """
    Train the GAN
    :param epoch_count: Number of epochs
    :param batch_size: Batch Size
    :param z_dim: Z dimension
    :param learning_rate: Learning Rate
    :param beta1: The exponential decay rate for the 1st moment in the optimizer
    :param get_batches: Function to get batches
    :param data_shape: Shape of the data
    :param data_image_mode: The image mode to use for images ("RGB" or "L")
    """
    
    show_every = 50
    print_every = 10
    
    input_real, input_z, lr = model_inputs(data_shape[1], data_shape[2], data_shape[3], z_dim)
    d_loss, g_loss = model_loss(input_real, input_z, len(data_image_mode))
    d_train_opt, g_train_opt = model_opt(d_loss, g_loss, lr, beta1)
    
    with tf.Session() as sess:
        sess.run(tf.global_variables_initializer())
        steps = 0
        losses = []
        for epoch_i in range(epoch_count):
            for batch_images in get_batches(batch_size):
                batch_images = batch_images*2
                steps += 1

                # Sample random noise for G
                batch_z = np.random.uniform(-1, 1, size=(batch_size, z_dim))

                # Run optimizers
                _ = sess.run(d_train_opt, feed_dict={input_real: batch_images, input_z: batch_z, lr: learning_rate})
                _ = sess.run(g_train_opt, feed_dict={input_z: batch_z, input_real: batch_images, lr: learning_rate})
                _ = sess.run(g_train_opt, feed_dict={input_z: batch_z, input_real: batch_images, lr: learning_rate})

                if steps % print_every == 0:
                    # At the end of each epoch, get the losses and print them out
                    train_loss_d = d_loss.eval({input_z: batch_z, input_real: batch_images})
                    train_loss_g = g_loss.eval({input_z: batch_z})

                    print("Epoch {}/{}...".format(epoch_i+1, epochs),
                          "Discriminator Loss: {:.4f}...".format(train_loss_d),
                          "Generator Loss: {:.4f}".format(train_loss_g))
                    # Save losses to view after training
                    losses.append((train_loss_d, train_loss_g))

                if steps % show_every == 0:
                    show_generator_output(sess, 25, input_z, len(data_image_mode), data_image_mode)

MNIST

Test your GANs architecture on MNIST. After 2 epochs, the GANs should be able to generate images that look like handwritten digits. Make sure the loss of the generator is lower than the loss of the discriminator or close to 0.

In [13]:
batch_size = 64
z_dim = 128
learning_rate = 0.002
beta1 = 0.4


"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
epochs = 1

mnist_dataset = helper.Dataset('mnist', glob(os.path.join(data_dir, 'mnist/*.jpg')))
with tf.Graph().as_default():
    train(epochs, batch_size, z_dim, learning_rate, beta1, mnist_dataset.get_batches,
          mnist_dataset.shape, mnist_dataset.image_mode)
Epoch 1/1... Discriminator Loss: 0.5743... Generator Loss: 0.8315
Epoch 1/1... Discriminator Loss: 0.2787... Generator Loss: 1.4257
Epoch 1/1... Discriminator Loss: 0.0504... Generator Loss: 3.1293
Epoch 1/1... Discriminator Loss: 0.0428... Generator Loss: 3.1773
Epoch 1/1... Discriminator Loss: 0.0223... Generator Loss: 3.8459
Epoch 1/1... Discriminator Loss: 0.0141... Generator Loss: 4.2926
Epoch 1/1... Discriminator Loss: 0.0095... Generator Loss: 4.6961
Epoch 1/1... Discriminator Loss: 0.0086... Generator Loss: 4.8213
Epoch 1/1... Discriminator Loss: 0.0059... Generator Loss: 5.1866
Epoch 1/1... Discriminator Loss: 0.0079... Generator Loss: 4.9235
Epoch 1/1... Discriminator Loss: 0.0032... Generator Loss: 5.7671
Epoch 1/1... Discriminator Loss: 0.0033... Generator Loss: 5.8139
Epoch 1/1... Discriminator Loss: 0.0037... Generator Loss: 5.7775
Epoch 1/1... Discriminator Loss: 0.0044... Generator Loss: 5.6911
Epoch 1/1... Discriminator Loss: 0.0017... Generator Loss: 6.4205
Epoch 1/1... Discriminator Loss: 0.0018... Generator Loss: 6.3914
Epoch 1/1... Discriminator Loss: 0.0016... Generator Loss: 6.4835
Epoch 1/1... Discriminator Loss: 0.0018... Generator Loss: 6.3915
Epoch 1/1... Discriminator Loss: 0.0014... Generator Loss: 6.6700
Epoch 1/1... Discriminator Loss: 0.0014... Generator Loss: 6.6853
Epoch 1/1... Discriminator Loss: 0.0010... Generator Loss: 7.0623
Epoch 1/1... Discriminator Loss: 0.0009... Generator Loss: 7.1781
Epoch 1/1... Discriminator Loss: 0.0009... Generator Loss: 7.0930
Epoch 1/1... Discriminator Loss: 0.0008... Generator Loss: 7.2234
Epoch 1/1... Discriminator Loss: 0.0007... Generator Loss: 7.3672
Epoch 1/1... Discriminator Loss: 0.0006... Generator Loss: 7.4390
Epoch 1/1... Discriminator Loss: 0.0006... Generator Loss: 7.5053
Epoch 1/1... Discriminator Loss: 0.0005... Generator Loss: 7.5717
Epoch 1/1... Discriminator Loss: 0.0006... Generator Loss: 7.6394
Epoch 1/1... Discriminator Loss: 0.0006... Generator Loss: 7.6943
Epoch 1/1... Discriminator Loss: 0.0005... Generator Loss: 7.7440
Epoch 1/1... Discriminator Loss: 0.0005... Generator Loss: 7.7883
Epoch 1/1... Discriminator Loss: 0.0004... Generator Loss: 7.8412
Epoch 1/1... Discriminator Loss: 0.0004... Generator Loss: 7.8676
Epoch 1/1... Discriminator Loss: 0.0004... Generator Loss: 7.8632
Epoch 1/1... Discriminator Loss: 0.0004... Generator Loss: 7.8605
Epoch 1/1... Discriminator Loss: 0.0003... Generator Loss: 8.0813
Epoch 1/1... Discriminator Loss: 0.0003... Generator Loss: 8.1213
Epoch 1/1... Discriminator Loss: 0.0003... Generator Loss: 8.1645
Epoch 1/1... Discriminator Loss: 0.0003... Generator Loss: 8.1894
Epoch 1/1... Discriminator Loss: 0.0003... Generator Loss: 8.2040
Epoch 1/1... Discriminator Loss: 0.0003... Generator Loss: 8.1991
Epoch 1/1... Discriminator Loss: 0.0003... Generator Loss: 8.1298
Epoch 1/1... Discriminator Loss: 0.0004... Generator Loss: 7.8912
Epoch 1/1... Discriminator Loss: 0.0003... Generator Loss: 8.3536
Epoch 1/1... Discriminator Loss: 0.0002... Generator Loss: 8.4755
Epoch 1/1... Discriminator Loss: 0.0003... Generator Loss: 8.2514
Epoch 1/1... Discriminator Loss: 0.0002... Generator Loss: 8.4415
Epoch 1/1... Discriminator Loss: 0.0002... Generator Loss: 8.5354
Epoch 1/1... Discriminator Loss: 0.0004... Generator Loss: 8.0277
Epoch 1/1... Discriminator Loss: 0.0005... Generator Loss: 7.8122
Epoch 1/1... Discriminator Loss: 0.0007... Generator Loss: 7.3688
Epoch 1/1... Discriminator Loss: 0.0002... Generator Loss: 8.6618
Epoch 1/1... Discriminator Loss: 0.0003... Generator Loss: 8.1520
Epoch 1/1... Discriminator Loss: 0.0003... Generator Loss: 8.3936
Epoch 1/1... Discriminator Loss: 0.0004... Generator Loss: 7.9275
Epoch 1/1... Discriminator Loss: 0.0014... Generator Loss: 6.7270
Epoch 1/1... Discriminator Loss: 0.0005... Generator Loss: 7.8893
Epoch 1/1... Discriminator Loss: 0.0011... Generator Loss: 6.9784
Epoch 1/1... Discriminator Loss: 0.0538... Generator Loss: 3.7091
Epoch 1/1... Discriminator Loss: 0.1622... Generator Loss: 13.8156
Epoch 1/1... Discriminator Loss: 15.7423... Generator Loss: 21.5520
Epoch 1/1... Discriminator Loss: 4.9584... Generator Loss: 2.0044
Epoch 1/1... Discriminator Loss: 4.0330... Generator Loss: 3.0491
Epoch 1/1... Discriminator Loss: 4.2342... Generator Loss: 2.3827
Epoch 1/1... Discriminator Loss: 4.6985... Generator Loss: 0.0522
Epoch 1/1... Discriminator Loss: 3.8045... Generator Loss: 0.0406
Epoch 1/1... Discriminator Loss: 3.7293... Generator Loss: 0.0420
Epoch 1/1... Discriminator Loss: 2.7831... Generator Loss: 0.1316
Epoch 1/1... Discriminator Loss: 3.0128... Generator Loss: 0.0738
Epoch 1/1... Discriminator Loss: 2.7334... Generator Loss: 0.1027
Epoch 1/1... Discriminator Loss: 2.5277... Generator Loss: 0.1148
Epoch 1/1... Discriminator Loss: 2.3513... Generator Loss: 1.2176
Epoch 1/1... Discriminator Loss: 1.8497... Generator Loss: 0.4747
Epoch 1/1... Discriminator Loss: 2.2015... Generator Loss: 0.1628
Epoch 1/1... Discriminator Loss: 2.1405... Generator Loss: 0.2033
Epoch 1/1... Discriminator Loss: 2.1279... Generator Loss: 1.2111
Epoch 1/1... Discriminator Loss: 1.7268... Generator Loss: 0.2963
Epoch 1/1... Discriminator Loss: 1.5562... Generator Loss: 0.3979
Epoch 1/1... Discriminator Loss: 1.7404... Generator Loss: 0.9200
Epoch 1/1... Discriminator Loss: 1.8957... Generator Loss: 0.2123
Epoch 1/1... Discriminator Loss: 1.6107... Generator Loss: 0.5398
Epoch 1/1... Discriminator Loss: 1.8338... Generator Loss: 1.8130
Epoch 1/1... Discriminator Loss: 1.8947... Generator Loss: 1.2896
Epoch 1/1... Discriminator Loss: 1.4238... Generator Loss: 1.0748
Epoch 1/1... Discriminator Loss: 1.8883... Generator Loss: 0.2149
Epoch 1/1... Discriminator Loss: 1.6117... Generator Loss: 0.2992
Epoch 1/1... Discriminator Loss: 2.1536... Generator Loss: 0.1528
Epoch 1/1... Discriminator Loss: 2.0958... Generator Loss: 0.1664
Epoch 1/1... Discriminator Loss: 2.1768... Generator Loss: 0.1715
Epoch 1/1... Discriminator Loss: 1.8110... Generator Loss: 2.0335
Epoch 1/1... Discriminator Loss: 1.2999... Generator Loss: 0.8567
Epoch 1/1... Discriminator Loss: 2.0309... Generator Loss: 2.3595

CelebA

Run your GANs on CelebA. It will take around 20 minutes on the average GPU to run one epoch. You can run the whole epoch or stop when it starts to generate realistic faces.

In [12]:
batch_size = 64
z_dim = 128
learning_rate = 0.0003
beta1 = 0.4


"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
epochs = 2

celeba_dataset = helper.Dataset('celeba', glob(os.path.join(data_dir, 'img_align_celeba/*.jpg')))
with tf.Graph().as_default():
    train(epochs, batch_size, z_dim, learning_rate, beta1, celeba_dataset.get_batches,
          celeba_dataset.shape, celeba_dataset.image_mode)
Epoch 1/2... Discriminator Loss: 2.8800... Generator Loss: 0.3563
Epoch 1/2... Discriminator Loss: 2.6126... Generator Loss: 0.9229
Epoch 1/2... Discriminator Loss: 2.4944... Generator Loss: 1.5610
Epoch 1/2... Discriminator Loss: 2.2316... Generator Loss: 0.7252
Epoch 1/2... Discriminator Loss: 1.6933... Generator Loss: 0.9162
Epoch 1/2... Discriminator Loss: 1.7585... Generator Loss: 0.4245
Epoch 1/2... Discriminator Loss: 1.8326... Generator Loss: 0.3696
Epoch 1/2... Discriminator Loss: 1.8063... Generator Loss: 0.5087
Epoch 1/2... Discriminator Loss: 1.6251... Generator Loss: 0.8578
Epoch 1/2... Discriminator Loss: 1.6349... Generator Loss: 0.5041
Epoch 1/2... Discriminator Loss: 1.7632... Generator Loss: 0.3599
Epoch 1/2... Discriminator Loss: 1.6394... Generator Loss: 0.5052
Epoch 1/2... Discriminator Loss: 1.3434... Generator Loss: 1.0881
Epoch 1/2... Discriminator Loss: 1.8473... Generator Loss: 0.2882
Epoch 1/2... Discriminator Loss: 2.2851... Generator Loss: 1.7161
Epoch 1/2... Discriminator Loss: 2.4107... Generator Loss: 0.1546
Epoch 1/2... Discriminator Loss: 1.6451... Generator Loss: 0.4404
Epoch 1/2... Discriminator Loss: 1.4077... Generator Loss: 0.7255
Epoch 1/2... Discriminator Loss: 1.5709... Generator Loss: 0.8107
Epoch 1/2... Discriminator Loss: 1.0690... Generator Loss: 0.9857
Epoch 1/2... Discriminator Loss: 2.0810... Generator Loss: 0.2421
Epoch 1/2... Discriminator Loss: 1.4899... Generator Loss: 0.6188
Epoch 1/2... Discriminator Loss: 1.9457... Generator Loss: 0.2669
Epoch 1/2... Discriminator Loss: 1.3751... Generator Loss: 0.7697
Epoch 1/2... Discriminator Loss: 1.6363... Generator Loss: 0.7008
Epoch 1/2... Discriminator Loss: 1.5737... Generator Loss: 3.5677
Epoch 1/2... Discriminator Loss: 1.1505... Generator Loss: 1.3105
Epoch 1/2... Discriminator Loss: 1.2428... Generator Loss: 1.0909
Epoch 1/2... Discriminator Loss: 1.3865... Generator Loss: 0.7539
Epoch 1/2... Discriminator Loss: 1.5353... Generator Loss: 0.5705
Epoch 1/2... Discriminator Loss: 1.1176... Generator Loss: 1.1024
Epoch 1/2... Discriminator Loss: 1.0343... Generator Loss: 3.0623
Epoch 1/2... Discriminator Loss: 1.8055... Generator Loss: 0.3076
Epoch 1/2... Discriminator Loss: 1.0263... Generator Loss: 1.9017
Epoch 1/2... Discriminator Loss: 0.8372... Generator Loss: 1.0527
Epoch 1/2... Discriminator Loss: 1.4849... Generator Loss: 0.6278
Epoch 1/2... Discriminator Loss: 1.0004... Generator Loss: 1.5551
Epoch 1/2... Discriminator Loss: 1.8192... Generator Loss: 0.5863
Epoch 1/2... Discriminator Loss: 1.5094... Generator Loss: 0.7026
Epoch 1/2... Discriminator Loss: 1.2800... Generator Loss: 1.0012
Epoch 1/2... Discriminator Loss: 1.9411... Generator Loss: 0.2593
Epoch 1/2... Discriminator Loss: 1.0829... Generator Loss: 1.7546
Epoch 1/2... Discriminator Loss: 1.4574... Generator Loss: 0.5884
Epoch 1/2... Discriminator Loss: 1.0109... Generator Loss: 1.2469
Epoch 1/2... Discriminator Loss: 1.4960... Generator Loss: 0.4033
Epoch 1/2... Discriminator Loss: 1.5183... Generator Loss: 0.5914
Epoch 1/2... Discriminator Loss: 1.4644... Generator Loss: 0.8447
Epoch 1/2... Discriminator Loss: 1.4914... Generator Loss: 0.7119
Epoch 1/2... Discriminator Loss: 1.4771... Generator Loss: 0.4463
Epoch 1/2... Discriminator Loss: 1.9020... Generator Loss: 0.2567
Epoch 1/2... Discriminator Loss: 1.3762... Generator Loss: 0.7968
Epoch 1/2... Discriminator Loss: 1.3859... Generator Loss: 0.6185
Epoch 1/2... Discriminator Loss: 1.9267... Generator Loss: 0.2447
Epoch 1/2... Discriminator Loss: 1.5165... Generator Loss: 0.6066
Epoch 1/2... Discriminator Loss: 1.3027... Generator Loss: 0.6684
Epoch 1/2... Discriminator Loss: 0.8847... Generator Loss: 1.3246
Epoch 1/2... Discriminator Loss: 1.2845... Generator Loss: 0.8101
Epoch 1/2... Discriminator Loss: 1.8834... Generator Loss: 0.3097
Epoch 1/2... Discriminator Loss: 1.4507... Generator Loss: 0.5925
Epoch 1/2... Discriminator Loss: 1.2696... Generator Loss: 0.6928
Epoch 1/2... Discriminator Loss: 1.4209... Generator Loss: 1.7156
Epoch 1/2... Discriminator Loss: 1.5262... Generator Loss: 0.5974
Epoch 1/2... Discriminator Loss: 1.4709... Generator Loss: 0.5557
Epoch 1/2... Discriminator Loss: 1.6085... Generator Loss: 0.5529
Epoch 1/2... Discriminator Loss: 1.6969... Generator Loss: 0.4419
Epoch 1/2... Discriminator Loss: 1.3016... Generator Loss: 0.5554
Epoch 1/2... Discriminator Loss: 2.0716... Generator Loss: 0.2181
Epoch 1/2... Discriminator Loss: 1.6024... Generator Loss: 0.4825
Epoch 1/2... Discriminator Loss: 1.1893... Generator Loss: 1.0603
Epoch 1/2... Discriminator Loss: 1.3674... Generator Loss: 0.5161
Epoch 1/2... Discriminator Loss: 1.5442... Generator Loss: 0.5804
Epoch 1/2... Discriminator Loss: 1.6981... Generator Loss: 0.4863
Epoch 1/2... Discriminator Loss: 1.6626... Generator Loss: 0.4395
Epoch 1/2... Discriminator Loss: 1.2116... Generator Loss: 0.8026
Epoch 1/2... Discriminator Loss: 1.9417... Generator Loss: 0.2489
Epoch 1/2... Discriminator Loss: 1.3295... Generator Loss: 0.8289
Epoch 1/2... Discriminator Loss: 1.3706... Generator Loss: 0.7862
Epoch 1/2... Discriminator Loss: 1.8560... Generator Loss: 0.3200
Epoch 1/2... Discriminator Loss: 1.4192... Generator Loss: 0.7150
Epoch 1/2... Discriminator Loss: 1.0843... Generator Loss: 0.9087
Epoch 1/2... Discriminator Loss: 1.4316... Generator Loss: 0.9474
Epoch 1/2... Discriminator Loss: 1.3359... Generator Loss: 0.6635
Epoch 1/2... Discriminator Loss: 1.4728... Generator Loss: 0.5738
Epoch 1/2... Discriminator Loss: 1.1892... Generator Loss: 1.1810
Epoch 1/2... Discriminator Loss: 1.0920... Generator Loss: 1.1094
Epoch 1/2... Discriminator Loss: 1.3396... Generator Loss: 1.0332
Epoch 1/2... Discriminator Loss: 1.0883... Generator Loss: 1.9378
Epoch 1/2... Discriminator Loss: 1.6487... Generator Loss: 0.4056
Epoch 1/2... Discriminator Loss: 2.0780... Generator Loss: 0.2338
Epoch 1/2... Discriminator Loss: 0.9482... Generator Loss: 1.4126
Epoch 1/2... Discriminator Loss: 1.8807... Generator Loss: 0.2726
Epoch 1/2... Discriminator Loss: 1.7833... Generator Loss: 0.3194
Epoch 1/2... Discriminator Loss: 1.5586... Generator Loss: 0.5350
Epoch 1/2... Discriminator Loss: 1.5598... Generator Loss: 0.6123
Epoch 1/2... Discriminator Loss: 1.6125... Generator Loss: 0.5945
Epoch 1/2... Discriminator Loss: 1.2473... Generator Loss: 0.8104
Epoch 1/2... Discriminator Loss: 1.4096... Generator Loss: 0.7273
Epoch 1/2... Discriminator Loss: 1.4546... Generator Loss: 1.1863
Epoch 1/2... Discriminator Loss: 2.1820... Generator Loss: 0.2052
Epoch 1/2... Discriminator Loss: 1.3377... Generator Loss: 0.9828
Epoch 1/2... Discriminator Loss: 1.2520... Generator Loss: 1.1187
Epoch 1/2... Discriminator Loss: 1.5499... Generator Loss: 0.4885
Epoch 1/2... Discriminator Loss: 1.4725... Generator Loss: 0.9831
Epoch 1/2... Discriminator Loss: 1.4674... Generator Loss: 0.6667
Epoch 1/2... Discriminator Loss: 1.5045... Generator Loss: 0.6345
Epoch 1/2... Discriminator Loss: 1.5295... Generator Loss: 0.5023
Epoch 1/2... Discriminator Loss: 1.6705... Generator Loss: 0.3599
Epoch 1/2... Discriminator Loss: 1.2929... Generator Loss: 0.7575
Epoch 1/2... Discriminator Loss: 2.3016... Generator Loss: 0.1754
Epoch 1/2... Discriminator Loss: 1.2606... Generator Loss: 0.7940
Epoch 1/2... Discriminator Loss: 1.7130... Generator Loss: 0.3267
Epoch 1/2... Discriminator Loss: 1.3957... Generator Loss: 0.7054
Epoch 1/2... Discriminator Loss: 1.4500... Generator Loss: 0.7237
Epoch 1/2... Discriminator Loss: 1.4271... Generator Loss: 0.6468
Epoch 1/2... Discriminator Loss: 1.3990... Generator Loss: 0.6809
Epoch 1/2... Discriminator Loss: 1.5673... Generator Loss: 0.4577
Epoch 1/2... Discriminator Loss: 2.2147... Generator Loss: 0.1886
Epoch 1/2... Discriminator Loss: 1.5133... Generator Loss: 0.6287
Epoch 1/2... Discriminator Loss: 1.4741... Generator Loss: 0.5975
Epoch 1/2... Discriminator Loss: 1.2804... Generator Loss: 0.7255
Epoch 1/2... Discriminator Loss: 1.7017... Generator Loss: 0.3486
Epoch 1/2... Discriminator Loss: 1.4788... Generator Loss: 0.7168
Epoch 1/2... Discriminator Loss: 1.8171... Generator Loss: 0.2925
Epoch 1/2... Discriminator Loss: 1.5841... Generator Loss: 0.4208
Epoch 1/2... Discriminator Loss: 1.7755... Generator Loss: 0.3166
Epoch 1/2... Discriminator Loss: 1.5263... Generator Loss: 0.6166
Epoch 1/2... Discriminator Loss: 1.7771... Generator Loss: 0.3162
Epoch 1/2... Discriminator Loss: 2.0318... Generator Loss: 0.2275
Epoch 1/2... Discriminator Loss: 1.9892... Generator Loss: 0.2575
Epoch 1/2... Discriminator Loss: 1.5036... Generator Loss: 0.6264
Epoch 1/2... Discriminator Loss: 1.2489... Generator Loss: 0.9036
Epoch 1/2... Discriminator Loss: 1.4627... Generator Loss: 0.5771
Epoch 1/2... Discriminator Loss: 2.0270... Generator Loss: 0.2367
Epoch 1/2... Discriminator Loss: 1.6540... Generator Loss: 0.3537
Epoch 1/2... Discriminator Loss: 1.5355... Generator Loss: 0.4534
Epoch 1/2... Discriminator Loss: 1.2124... Generator Loss: 1.0583
Epoch 1/2... Discriminator Loss: 1.6660... Generator Loss: 0.6242
Epoch 1/2... Discriminator Loss: 1.6091... Generator Loss: 0.5058
Epoch 1/2... Discriminator Loss: 1.7659... Generator Loss: 1.1683
Epoch 1/2... Discriminator Loss: 1.7081... Generator Loss: 0.4915
Epoch 1/2... Discriminator Loss: 1.6610... Generator Loss: 0.3898
Epoch 1/2... Discriminator Loss: 1.3113... Generator Loss: 0.6599
Epoch 1/2... Discriminator Loss: 1.8593... Generator Loss: 0.3074
Epoch 1/2... Discriminator Loss: 1.5247... Generator Loss: 0.5678
Epoch 1/2... Discriminator Loss: 1.7214... Generator Loss: 0.3722
Epoch 1/2... Discriminator Loss: 1.5954... Generator Loss: 0.5249
Epoch 1/2... Discriminator Loss: 1.6298... Generator Loss: 0.4016
Epoch 1/2... Discriminator Loss: 1.5036... Generator Loss: 0.6619
Epoch 1/2... Discriminator Loss: 1.3102... Generator Loss: 0.7329
Epoch 1/2... Discriminator Loss: 1.0271... Generator Loss: 1.2251
Epoch 1/2... Discriminator Loss: 1.4716... Generator Loss: 0.7163
Epoch 1/2... Discriminator Loss: 1.4957... Generator Loss: 0.5184
Epoch 1/2... Discriminator Loss: 1.7232... Generator Loss: 0.4392
Epoch 1/2... Discriminator Loss: 1.8125... Generator Loss: 1.1565
Epoch 1/2... Discriminator Loss: 1.3420... Generator Loss: 1.0666
Epoch 1/2... Discriminator Loss: 2.2589... Generator Loss: 0.1774
Epoch 1/2... Discriminator Loss: 1.3394... Generator Loss: 0.7590
Epoch 1/2... Discriminator Loss: 1.3759... Generator Loss: 0.4800
Epoch 1/2... Discriminator Loss: 1.6056... Generator Loss: 0.4383
Epoch 1/2... Discriminator Loss: 1.4929... Generator Loss: 0.6614
Epoch 1/2... Discriminator Loss: 2.5085... Generator Loss: 0.1366
Epoch 1/2... Discriminator Loss: 1.6283... Generator Loss: 0.4575
Epoch 1/2... Discriminator Loss: 1.5479... Generator Loss: 0.9366
Epoch 1/2... Discriminator Loss: 1.5787... Generator Loss: 0.5340
Epoch 1/2... Discriminator Loss: 1.6602... Generator Loss: 0.4162
Epoch 1/2... Discriminator Loss: 1.2781... Generator Loss: 0.6892
Epoch 1/2... Discriminator Loss: 1.4192... Generator Loss: 0.5853
Epoch 1/2... Discriminator Loss: 2.1551... Generator Loss: 0.2120
Epoch 1/2... Discriminator Loss: 1.5473... Generator Loss: 0.5414
Epoch 1/2... Discriminator Loss: 2.0367... Generator Loss: 0.2687
Epoch 1/2... Discriminator Loss: 1.6773... Generator Loss: 0.9291
Epoch 1/2... Discriminator Loss: 1.5158... Generator Loss: 0.9338
Epoch 1/2... Discriminator Loss: 0.8899... Generator Loss: 1.5788
Epoch 1/2... Discriminator Loss: 1.4794... Generator Loss: 0.9964
Epoch 1/2... Discriminator Loss: 1.5957... Generator Loss: 0.4948
Epoch 1/2... Discriminator Loss: 1.7911... Generator Loss: 0.3156
Epoch 1/2... Discriminator Loss: 1.7351... Generator Loss: 0.4069
Epoch 1/2... Discriminator Loss: 1.5455... Generator Loss: 0.4464
Epoch 1/2... Discriminator Loss: 1.7435... Generator Loss: 0.3706
Epoch 1/2... Discriminator Loss: 1.2934... Generator Loss: 0.7541
Epoch 1/2... Discriminator Loss: 1.5603... Generator Loss: 0.4143
Epoch 1/2... Discriminator Loss: 1.9553... Generator Loss: 0.3098
Epoch 1/2... Discriminator Loss: 1.5487... Generator Loss: 0.5808
Epoch 1/2... Discriminator Loss: 1.8131... Generator Loss: 0.2948
Epoch 1/2... Discriminator Loss: 1.8727... Generator Loss: 0.2872
Epoch 1/2... Discriminator Loss: 1.2546... Generator Loss: 0.8656
Epoch 1/2... Discriminator Loss: 1.6322... Generator Loss: 0.4749
Epoch 1/2... Discriminator Loss: 2.0579... Generator Loss: 0.2172
Epoch 1/2... Discriminator Loss: 1.3917... Generator Loss: 1.1394
Epoch 1/2... Discriminator Loss: 1.8902... Generator Loss: 0.3055
Epoch 1/2... Discriminator Loss: 1.3107... Generator Loss: 1.1767
Epoch 1/2... Discriminator Loss: 1.6189... Generator Loss: 0.4626
Epoch 1/2... Discriminator Loss: 1.4610... Generator Loss: 0.9995
Epoch 1/2... Discriminator Loss: 1.5188... Generator Loss: 0.8173
Epoch 1/2... Discriminator Loss: 2.0201... Generator Loss: 0.2449
Epoch 1/2... Discriminator Loss: 1.5345... Generator Loss: 0.5175
Epoch 1/2... Discriminator Loss: 1.9847... Generator Loss: 0.2480
Epoch 1/2... Discriminator Loss: 1.5633... Generator Loss: 1.1429
Epoch 1/2... Discriminator Loss: 2.2810... Generator Loss: 0.1804
Epoch 1/2... Discriminator Loss: 1.9575... Generator Loss: 0.2588
Epoch 1/2... Discriminator Loss: 2.0295... Generator Loss: 0.2494
Epoch 1/2... Discriminator Loss: 1.4147... Generator Loss: 0.5520
Epoch 1/2... Discriminator Loss: 2.0010... Generator Loss: 0.2477
Epoch 1/2... Discriminator Loss: 1.5562... Generator Loss: 0.6593
Epoch 1/2... Discriminator Loss: 1.7863... Generator Loss: 0.4208
Epoch 1/2... Discriminator Loss: 1.6428... Generator Loss: 0.4401
Epoch 1/2... Discriminator Loss: 2.3284... Generator Loss: 0.1626
Epoch 1/2... Discriminator Loss: 1.3128... Generator Loss: 0.6638
Epoch 1/2... Discriminator Loss: 1.5873... Generator Loss: 0.6080
Epoch 1/2... Discriminator Loss: 1.9403... Generator Loss: 0.3093
Epoch 1/2... Discriminator Loss: 1.8006... Generator Loss: 0.3786
Epoch 1/2... Discriminator Loss: 2.8700... Generator Loss: 0.0946
Epoch 1/2... Discriminator Loss: 1.1584... Generator Loss: 1.1850
Epoch 1/2... Discriminator Loss: 1.8245... Generator Loss: 0.3460
Epoch 1/2... Discriminator Loss: 1.8680... Generator Loss: 0.3187
Epoch 1/2... Discriminator Loss: 2.0937... Generator Loss: 0.2165
Epoch 1/2... Discriminator Loss: 2.0810... Generator Loss: 0.2632
Epoch 1/2... Discriminator Loss: 2.2321... Generator Loss: 0.1848
Epoch 1/2... Discriminator Loss: 1.9690... Generator Loss: 0.2688
Epoch 1/2... Discriminator Loss: 1.9209... Generator Loss: 1.3723
Epoch 1/2... Discriminator Loss: 2.0527... Generator Loss: 0.2635
Epoch 1/2... Discriminator Loss: 1.7356... Generator Loss: 0.3641
Epoch 1/2... Discriminator Loss: 2.0461... Generator Loss: 0.2250
Epoch 1/2... Discriminator Loss: 1.5214... Generator Loss: 0.6910
Epoch 1/2... Discriminator Loss: 1.5063... Generator Loss: 0.6061
Epoch 1/2... Discriminator Loss: 1.6667... Generator Loss: 0.3698
Epoch 1/2... Discriminator Loss: 1.9733... Generator Loss: 0.2454
Epoch 1/2... Discriminator Loss: 1.8035... Generator Loss: 0.3895
Epoch 1/2... Discriminator Loss: 1.5032... Generator Loss: 0.5609
Epoch 1/2... Discriminator Loss: 2.0877... Generator Loss: 0.2403
Epoch 1/2... Discriminator Loss: 1.7163... Generator Loss: 0.7670
Epoch 1/2... Discriminator Loss: 1.5057... Generator Loss: 0.7930
Epoch 1/2... Discriminator Loss: 1.3263... Generator Loss: 0.9579
Epoch 1/2... Discriminator Loss: 1.6450... Generator Loss: 0.5228
Epoch 1/2... Discriminator Loss: 2.0247... Generator Loss: 0.2644
Epoch 1/2... Discriminator Loss: 2.1080... Generator Loss: 0.3072
Epoch 1/2... Discriminator Loss: 2.1427... Generator Loss: 0.2098
Epoch 1/2... Discriminator Loss: 1.7294... Generator Loss: 0.3961
Epoch 1/2... Discriminator Loss: 2.2213... Generator Loss: 0.1982
Epoch 1/2... Discriminator Loss: 1.6978... Generator Loss: 0.5535
Epoch 1/2... Discriminator Loss: 1.8518... Generator Loss: 0.3522
Epoch 1/2... Discriminator Loss: 1.9649... Generator Loss: 0.2442
Epoch 1/2... Discriminator Loss: 1.5968... Generator Loss: 0.5796
Epoch 1/2... Discriminator Loss: 1.7482... Generator Loss: 0.3804
Epoch 1/2... Discriminator Loss: 1.5961... Generator Loss: 0.4602
Epoch 1/2... Discriminator Loss: 2.1277... Generator Loss: 0.2531
Epoch 1/2... Discriminator Loss: 1.5325... Generator Loss: 0.5627
Epoch 1/2... Discriminator Loss: 2.1096... Generator Loss: 0.2076
Epoch 1/2... Discriminator Loss: 2.1086... Generator Loss: 0.2146
Epoch 1/2... Discriminator Loss: 1.8672... Generator Loss: 0.3251
Epoch 1/2... Discriminator Loss: 2.0562... Generator Loss: 0.2222
Epoch 1/2... Discriminator Loss: 1.4643... Generator Loss: 0.5991
Epoch 1/2... Discriminator Loss: 1.8604... Generator Loss: 0.2755
Epoch 1/2... Discriminator Loss: 1.8433... Generator Loss: 0.3654
Epoch 1/2... Discriminator Loss: 1.4606... Generator Loss: 0.7172
Epoch 1/2... Discriminator Loss: 1.3420... Generator Loss: 1.0788
Epoch 1/2... Discriminator Loss: 1.5994... Generator Loss: 0.4398
Epoch 1/2... Discriminator Loss: 1.6884... Generator Loss: 0.3909
Epoch 1/2... Discriminator Loss: 2.2060... Generator Loss: 0.1960
Epoch 1/2... Discriminator Loss: 1.4157... Generator Loss: 0.9047
Epoch 1/2... Discriminator Loss: 1.7317... Generator Loss: 0.4618
Epoch 1/2... Discriminator Loss: 2.3419... Generator Loss: 0.1694
Epoch 1/2... Discriminator Loss: 1.7155... Generator Loss: 0.6834
Epoch 1/2... Discriminator Loss: 2.0328... Generator Loss: 0.2572
Epoch 1/2... Discriminator Loss: 2.4847... Generator Loss: 0.1396
Epoch 1/2... Discriminator Loss: 1.7218... Generator Loss: 0.3839
Epoch 1/2... Discriminator Loss: 1.7985... Generator Loss: 0.4564
Epoch 1/2... Discriminator Loss: 1.6975... Generator Loss: 0.9297
Epoch 1/2... Discriminator Loss: 1.9387... Generator Loss: 0.2578
Epoch 1/2... Discriminator Loss: 2.1140... Generator Loss: 0.2362
Epoch 1/2... Discriminator Loss: 2.2183... Generator Loss: 0.1943
Epoch 1/2... Discriminator Loss: 1.6343... Generator Loss: 0.4599
Epoch 1/2... Discriminator Loss: 2.5318... Generator Loss: 2.1623
Epoch 1/2... Discriminator Loss: 1.8522... Generator Loss: 0.3081
Epoch 1/2... Discriminator Loss: 2.1887... Generator Loss: 0.2097
Epoch 1/2... Discriminator Loss: 2.0578... Generator Loss: 0.2183
Epoch 1/2... Discriminator Loss: 1.1784... Generator Loss: 1.0813
Epoch 1/2... Discriminator Loss: 2.4356... Generator Loss: 0.1486
Epoch 1/2... Discriminator Loss: 1.6312... Generator Loss: 0.4762
Epoch 1/2... Discriminator Loss: 1.5863... Generator Loss: 0.4779
Epoch 1/2... Discriminator Loss: 2.0346... Generator Loss: 0.2847
Epoch 1/2... Discriminator Loss: 1.6261... Generator Loss: 0.4814
Epoch 1/2... Discriminator Loss: 1.6055... Generator Loss: 0.8153
Epoch 1/2... Discriminator Loss: 1.5977... Generator Loss: 0.5232
Epoch 1/2... Discriminator Loss: 1.4365... Generator Loss: 0.9980
Epoch 1/2... Discriminator Loss: 1.7839... Generator Loss: 0.5142
Epoch 1/2... Discriminator Loss: 2.1337... Generator Loss: 0.2031
Epoch 1/2... Discriminator Loss: 1.3204... Generator Loss: 0.5749
Epoch 1/2... Discriminator Loss: 1.7427... Generator Loss: 0.5914
Epoch 1/2... Discriminator Loss: 2.4092... Generator Loss: 0.1610
Epoch 1/2... Discriminator Loss: 2.1461... Generator Loss: 0.2021
Epoch 1/2... Discriminator Loss: 1.5101... Generator Loss: 0.5288
Epoch 1/2... Discriminator Loss: 1.8275... Generator Loss: 0.4037
Epoch 1/2... Discriminator Loss: 2.4022... Generator Loss: 0.1567
Epoch 1/2... Discriminator Loss: 2.1770... Generator Loss: 0.1975
Epoch 1/2... Discriminator Loss: 1.7581... Generator Loss: 0.8533
Epoch 1/2... Discriminator Loss: 1.4359... Generator Loss: 0.8291
Epoch 1/2... Discriminator Loss: 2.3396... Generator Loss: 0.1680
Epoch 1/2... Discriminator Loss: 2.3721... Generator Loss: 0.1621
Epoch 1/2... Discriminator Loss: 1.4945... Generator Loss: 1.3919
Epoch 1/2... Discriminator Loss: 2.2528... Generator Loss: 0.1817
Epoch 1/2... Discriminator Loss: 1.8008... Generator Loss: 0.2955
Epoch 1/2... Discriminator Loss: 1.6678... Generator Loss: 0.3765
Epoch 1/2... Discriminator Loss: 1.9463... Generator Loss: 0.2775
Epoch 1/2... Discriminator Loss: 2.0469... Generator Loss: 0.2374
Epoch 1/2... Discriminator Loss: 1.2461... Generator Loss: 1.4685
Epoch 1/2... Discriminator Loss: 1.7699... Generator Loss: 0.3970
Epoch 1/2... Discriminator Loss: 1.5323... Generator Loss: 0.6477
Epoch 1/2... Discriminator Loss: 2.1610... Generator Loss: 0.2081
Epoch 1/2... Discriminator Loss: 1.8383... Generator Loss: 0.3460
Epoch 1/2... Discriminator Loss: 1.6683... Generator Loss: 0.3547
Epoch 1/2... Discriminator Loss: 1.7091... Generator Loss: 0.3905
Epoch 1/2... Discriminator Loss: 1.8072... Generator Loss: 0.4243
Epoch 1/2... Discriminator Loss: 1.3922... Generator Loss: 0.8159
Epoch 1/2... Discriminator Loss: 2.1972... Generator Loss: 0.1966
Epoch 1/2... Discriminator Loss: 1.2498... Generator Loss: 2.0313
Epoch 2/2... Discriminator Loss: 1.6967... Generator Loss: 0.5883
Epoch 2/2... Discriminator Loss: 1.9467... Generator Loss: 0.2541
Epoch 2/2... Discriminator Loss: 2.1535... Generator Loss: 0.2076
Epoch 2/2... Discriminator Loss: 2.1103... Generator Loss: 0.2134
Epoch 2/2... Discriminator Loss: 2.6960... Generator Loss: 0.1095
Epoch 2/2... Discriminator Loss: 1.7578... Generator Loss: 0.3210
Epoch 2/2... Discriminator Loss: 1.9270... Generator Loss: 0.2673
Epoch 2/2... Discriminator Loss: 1.7888... Generator Loss: 0.3206
Epoch 2/2... Discriminator Loss: 1.6275... Generator Loss: 0.3877
Epoch 2/2... Discriminator Loss: 1.4098... Generator Loss: 0.6351
Epoch 2/2... Discriminator Loss: 2.1168... Generator Loss: 0.2285
Epoch 2/2... Discriminator Loss: 1.6711... Generator Loss: 0.4003
Epoch 2/2... Discriminator Loss: 1.7763... Generator Loss: 0.3761
Epoch 2/2... Discriminator Loss: 2.0278... Generator Loss: 0.2281
Epoch 2/2... Discriminator Loss: 2.0639... Generator Loss: 0.2217
Epoch 2/2... Discriminator Loss: 1.8325... Generator Loss: 0.2971
Epoch 2/2... Discriminator Loss: 1.6910... Generator Loss: 0.3527
Epoch 2/2... Discriminator Loss: 2.2904... Generator Loss: 0.1704
Epoch 2/2... Discriminator Loss: 2.3979... Generator Loss: 0.1571
Epoch 2/2... Discriminator Loss: 1.7381... Generator Loss: 0.4242
Epoch 2/2... Discriminator Loss: 2.4418... Generator Loss: 0.1474
Epoch 2/2... Discriminator Loss: 2.0082... Generator Loss: 0.3376
Epoch 2/2... Discriminator Loss: 1.7488... Generator Loss: 0.4509
Epoch 2/2... Discriminator Loss: 1.5266... Generator Loss: 0.4310
Epoch 2/2... Discriminator Loss: 2.2432... Generator Loss: 0.1880
Epoch 2/2... Discriminator Loss: 2.0229... Generator Loss: 0.2472
Epoch 2/2... Discriminator Loss: 1.6164... Generator Loss: 0.5292
Epoch 2/2... Discriminator Loss: 2.3301... Generator Loss: 0.1628
Epoch 2/2... Discriminator Loss: 1.8151... Generator Loss: 0.3183
Epoch 2/2... Discriminator Loss: 1.6636... Generator Loss: 0.4852
Epoch 2/2... Discriminator Loss: 1.4346... Generator Loss: 0.5788
Epoch 2/2... Discriminator Loss: 1.8867... Generator Loss: 0.2887
Epoch 2/2... Discriminator Loss: 2.8359... Generator Loss: 0.1042
Epoch 2/2... Discriminator Loss: 2.1154... Generator Loss: 0.2201
Epoch 2/2... Discriminator Loss: 1.6854... Generator Loss: 0.3696
Epoch 2/2... Discriminator Loss: 1.3960... Generator Loss: 0.6336
Epoch 2/2... Discriminator Loss: 1.7846... Generator Loss: 0.3194
Epoch 2/2... Discriminator Loss: 1.7749... Generator Loss: 0.3568
Epoch 2/2... Discriminator Loss: 1.7818... Generator Loss: 0.3347
Epoch 2/2... Discriminator Loss: 2.2467... Generator Loss: 0.1933
Epoch 2/2... Discriminator Loss: 1.8088... Generator Loss: 0.3244
Epoch 2/2... Discriminator Loss: 1.5269... Generator Loss: 0.5504
Epoch 2/2... Discriminator Loss: 2.5519... Generator Loss: 0.1379
Epoch 2/2... Discriminator Loss: 1.5439... Generator Loss: 0.5899
Epoch 2/2... Discriminator Loss: 2.0432... Generator Loss: 0.5163
Epoch 2/2... Discriminator Loss: 1.9313... Generator Loss: 0.2592
Epoch 2/2... Discriminator Loss: 1.7636... Generator Loss: 0.3281
Epoch 2/2... Discriminator Loss: 2.2541... Generator Loss: 0.1961
Epoch 2/2... Discriminator Loss: 2.0270... Generator Loss: 0.2312
Epoch 2/2... Discriminator Loss: 2.1292... Generator Loss: 0.2160
Epoch 2/2... Discriminator Loss: 2.3044... Generator Loss: 0.1757
Epoch 2/2... Discriminator Loss: 1.9682... Generator Loss: 0.2475
Epoch 2/2... Discriminator Loss: 1.5972... Generator Loss: 0.5168
Epoch 2/2... Discriminator Loss: 1.7042... Generator Loss: 0.3681
Epoch 2/2... Discriminator Loss: 2.1286... Generator Loss: 0.2024
Epoch 2/2... Discriminator Loss: 2.2349... Generator Loss: 0.1895
Epoch 2/2... Discriminator Loss: 2.4304... Generator Loss: 0.1509
Epoch 2/2... Discriminator Loss: 2.1055... Generator Loss: 0.2339
Epoch 2/2... Discriminator Loss: 2.1374... Generator Loss: 0.2261
Epoch 2/2... Discriminator Loss: 1.9715... Generator Loss: 0.2474
Epoch 2/2... Discriminator Loss: 1.6064... Generator Loss: 0.5280
Epoch 2/2... Discriminator Loss: 2.0122... Generator Loss: 0.2499
Epoch 2/2... Discriminator Loss: 2.6652... Generator Loss: 0.1147
Epoch 2/2... Discriminator Loss: 1.3819... Generator Loss: 0.8243
Epoch 2/2... Discriminator Loss: 1.8489... Generator Loss: 0.3159
Epoch 2/2... Discriminator Loss: 2.1742... Generator Loss: 0.1963
Epoch 2/2... Discriminator Loss: 2.3715... Generator Loss: 0.1664
Epoch 2/2... Discriminator Loss: 1.7703... Generator Loss: 0.3140
Epoch 2/2... Discriminator Loss: 2.2991... Generator Loss: 0.1774
Epoch 2/2... Discriminator Loss: 2.2374... Generator Loss: 0.1881
Epoch 2/2... Discriminator Loss: 1.2738... Generator Loss: 1.5400
Epoch 2/2... Discriminator Loss: 1.6246... Generator Loss: 0.6682
Epoch 2/2... Discriminator Loss: 1.5031... Generator Loss: 0.4434
Epoch 2/2... Discriminator Loss: 1.7467... Generator Loss: 0.4066
Epoch 2/2... Discriminator Loss: 1.4186... Generator Loss: 0.5963
Epoch 2/2... Discriminator Loss: 1.9721... Generator Loss: 0.2932
Epoch 2/2... Discriminator Loss: 1.0066... Generator Loss: 1.2092
Epoch 2/2... Discriminator Loss: 1.6910... Generator Loss: 0.3543
Epoch 2/2... Discriminator Loss: 1.7511... Generator Loss: 0.3318
Epoch 2/2... Discriminator Loss: 1.6296... Generator Loss: 0.4117
Epoch 2/2... Discriminator Loss: 2.4817... Generator Loss: 0.1549
Epoch 2/2... Discriminator Loss: 1.2228... Generator Loss: 0.9516
Epoch 2/2... Discriminator Loss: 2.3747... Generator Loss: 0.1587
Epoch 2/2... Discriminator Loss: 1.7401... Generator Loss: 0.3649
Epoch 2/2... Discriminator Loss: 1.7243... Generator Loss: 0.3868
Epoch 2/2... Discriminator Loss: 1.4123... Generator Loss: 0.5879
Epoch 2/2... Discriminator Loss: 2.0636... Generator Loss: 0.2281
Epoch 2/2... Discriminator Loss: 1.4716... Generator Loss: 0.6245
Epoch 2/2... Discriminator Loss: 2.4039... Generator Loss: 0.1519
Epoch 2/2... Discriminator Loss: 2.4322... Generator Loss: 0.1519
Epoch 2/2... Discriminator Loss: 3.1786... Generator Loss: 0.0751
Epoch 2/2... Discriminator Loss: 1.2921... Generator Loss: 0.9642
Epoch 2/2... Discriminator Loss: 2.3389... Generator Loss: 0.1753
Epoch 2/2... Discriminator Loss: 2.5675... Generator Loss: 0.1431
Epoch 2/2... Discriminator Loss: 2.4318... Generator Loss: 0.1589
Epoch 2/2... Discriminator Loss: 2.0117... Generator Loss: 0.2596
Epoch 2/2... Discriminator Loss: 3.0608... Generator Loss: 0.0826
Epoch 2/2... Discriminator Loss: 2.5014... Generator Loss: 0.1439
Epoch 2/2... Discriminator Loss: 1.6384... Generator Loss: 0.5858
Epoch 2/2... Discriminator Loss: 2.0236... Generator Loss: 0.2563
Epoch 2/2... Discriminator Loss: 1.6044... Generator Loss: 0.4896
Epoch 2/2... Discriminator Loss: 1.5842... Generator Loss: 0.4564
Epoch 2/2... Discriminator Loss: 1.7318... Generator Loss: 0.5774
Epoch 2/2... Discriminator Loss: 2.2586... Generator Loss: 0.1741
Epoch 2/2... Discriminator Loss: 1.5502... Generator Loss: 0.4254
Epoch 2/2... Discriminator Loss: 2.1114... Generator Loss: 0.2240
Epoch 2/2... Discriminator Loss: 1.5861... Generator Loss: 0.8117
Epoch 2/2... Discriminator Loss: 2.2186... Generator Loss: 0.1941
Epoch 2/2... Discriminator Loss: 2.2020... Generator Loss: 0.1925
Epoch 2/2... Discriminator Loss: 2.4576... Generator Loss: 0.1448
Epoch 2/2... Discriminator Loss: 2.0618... Generator Loss: 0.2267
Epoch 2/2... Discriminator Loss: 1.4837... Generator Loss: 0.5493
Epoch 2/2... Discriminator Loss: 2.0564... Generator Loss: 0.2321
Epoch 2/2... Discriminator Loss: 2.1518... Generator Loss: 0.2067
Epoch 2/2... Discriminator Loss: 2.2148... Generator Loss: 0.2122
Epoch 2/2... Discriminator Loss: 1.3612... Generator Loss: 0.6761
Epoch 2/2... Discriminator Loss: 2.4050... Generator Loss: 0.1578
Epoch 2/2... Discriminator Loss: 1.6539... Generator Loss: 0.4321
Epoch 2/2... Discriminator Loss: 2.0862... Generator Loss: 0.6954
Epoch 2/2... Discriminator Loss: 2.0909... Generator Loss: 0.2455
Epoch 2/2... Discriminator Loss: 1.9934... Generator Loss: 0.4845
Epoch 2/2... Discriminator Loss: 1.7889... Generator Loss: 0.3788
Epoch 2/2... Discriminator Loss: 1.9857... Generator Loss: 0.2425
Epoch 2/2... Discriminator Loss: 1.7644... Generator Loss: 0.4261
Epoch 2/2... Discriminator Loss: 2.1354... Generator Loss: 0.2034
Epoch 2/2... Discriminator Loss: 3.0393... Generator Loss: 0.0856
Epoch 2/2... Discriminator Loss: 1.9352... Generator Loss: 0.2669
Epoch 2/2... Discriminator Loss: 2.1621... Generator Loss: 0.1986
Epoch 2/2... Discriminator Loss: 1.3452... Generator Loss: 1.3616
Epoch 2/2... Discriminator Loss: 2.4728... Generator Loss: 0.1472
Epoch 2/2... Discriminator Loss: 2.0256... Generator Loss: 0.2381
Epoch 2/2... Discriminator Loss: 1.9189... Generator Loss: 0.2790
Epoch 2/2... Discriminator Loss: 1.0350... Generator Loss: 1.2929
Epoch 2/2... Discriminator Loss: 1.6015... Generator Loss: 0.5501
Epoch 2/2... Discriminator Loss: 1.8477... Generator Loss: 0.4066
Epoch 2/2... Discriminator Loss: 1.7238... Generator Loss: 0.7056
Epoch 2/2... Discriminator Loss: 1.8020... Generator Loss: 0.3102
Epoch 2/2... Discriminator Loss: 1.9563... Generator Loss: 0.3316
Epoch 2/2... Discriminator Loss: 1.9967... Generator Loss: 0.2669
Epoch 2/2... Discriminator Loss: 1.9242... Generator Loss: 0.2727
Epoch 2/2... Discriminator Loss: 1.8406... Generator Loss: 0.3596
Epoch 2/2... Discriminator Loss: 2.8307... Generator Loss: 0.0981
Epoch 2/2... Discriminator Loss: 2.1578... Generator Loss: 0.2316
Epoch 2/2... Discriminator Loss: 1.2927... Generator Loss: 0.6946
Epoch 2/2... Discriminator Loss: 2.6754... Generator Loss: 0.1195
Epoch 2/2... Discriminator Loss: 2.5957... Generator Loss: 0.1363
Epoch 2/2... Discriminator Loss: 1.7784... Generator Loss: 0.3260
Epoch 2/2... Discriminator Loss: 2.2550... Generator Loss: 0.1848
Epoch 2/2... Discriminator Loss: 1.6869... Generator Loss: 0.8471
Epoch 2/2... Discriminator Loss: 3.0267... Generator Loss: 0.0878
Epoch 2/2... Discriminator Loss: 2.5820... Generator Loss: 0.1324
Epoch 2/2... Discriminator Loss: 2.4420... Generator Loss: 0.1536
Epoch 2/2... Discriminator Loss: 1.7488... Generator Loss: 1.7548
Epoch 2/2... Discriminator Loss: 1.7177... Generator Loss: 0.3363
Epoch 2/2... Discriminator Loss: 1.0977... Generator Loss: 1.0906
Epoch 2/2... Discriminator Loss: 1.9589... Generator Loss: 0.2871
Epoch 2/2... Discriminator Loss: 2.3137... Generator Loss: 0.1956
Epoch 2/2... Discriminator Loss: 0.8958... Generator Loss: 2.2693
Epoch 2/2... Discriminator Loss: 1.7908... Generator Loss: 0.5441
Epoch 2/2... Discriminator Loss: 1.8306... Generator Loss: 0.4795
Epoch 2/2... Discriminator Loss: 2.5258... Generator Loss: 0.1407
Epoch 2/2... Discriminator Loss: 2.2987... Generator Loss: 0.1660
Epoch 2/2... Discriminator Loss: 1.8236... Generator Loss: 0.4360
Epoch 2/2... Discriminator Loss: 2.8768... Generator Loss: 0.1168
Epoch 2/2... Discriminator Loss: 2.5891... Generator Loss: 0.1396
Epoch 2/2... Discriminator Loss: 2.4109... Generator Loss: 0.1548
Epoch 2/2... Discriminator Loss: 1.9952... Generator Loss: 0.3745
Epoch 2/2... Discriminator Loss: 1.7489... Generator Loss: 0.7200
Epoch 2/2... Discriminator Loss: 1.4758... Generator Loss: 0.8269
Epoch 2/2... Discriminator Loss: 2.1083... Generator Loss: 0.2996
Epoch 2/2... Discriminator Loss: 2.7689... Generator Loss: 0.1190
Epoch 2/2... Discriminator Loss: 0.9267... Generator Loss: 1.6948
Epoch 2/2... Discriminator Loss: 1.7653... Generator Loss: 1.2302
Epoch 2/2... Discriminator Loss: 2.8055... Generator Loss: 0.1101
Epoch 2/2... Discriminator Loss: 3.0333... Generator Loss: 0.0873
Epoch 2/2... Discriminator Loss: 1.9195... Generator Loss: 0.3851
Epoch 2/2... Discriminator Loss: 2.0466... Generator Loss: 0.2930
Epoch 2/2... Discriminator Loss: 2.2971... Generator Loss: 0.1900
Epoch 2/2... Discriminator Loss: 2.5447... Generator Loss: 0.1404
Epoch 2/2... Discriminator Loss: 1.6710... Generator Loss: 0.3800
Epoch 2/2... Discriminator Loss: 2.1748... Generator Loss: 0.1950
Epoch 2/2... Discriminator Loss: 2.3784... Generator Loss: 0.1692
Epoch 2/2... Discriminator Loss: 2.1476... Generator Loss: 0.3820
Epoch 2/2... Discriminator Loss: 1.7960... Generator Loss: 0.4042
Epoch 2/2... Discriminator Loss: 1.3127... Generator Loss: 0.7044
Epoch 2/2... Discriminator Loss: 1.2490... Generator Loss: 0.9718
Epoch 2/2... Discriminator Loss: 1.7690... Generator Loss: 0.3981
Epoch 2/2... Discriminator Loss: 1.4275... Generator Loss: 0.6126
Epoch 2/2... Discriminator Loss: 1.8040... Generator Loss: 0.4099
Epoch 2/2... Discriminator Loss: 3.1790... Generator Loss: 0.1011
Epoch 2/2... Discriminator Loss: 2.4778... Generator Loss: 0.1485
Epoch 2/2... Discriminator Loss: 1.9392... Generator Loss: 0.3247
Epoch 2/2... Discriminator Loss: 1.6850... Generator Loss: 0.4096
Epoch 2/2... Discriminator Loss: 2.2418... Generator Loss: 1.9764
Epoch 2/2... Discriminator Loss: 2.0548... Generator Loss: 0.2346
Epoch 2/2... Discriminator Loss: 2.1406... Generator Loss: 0.2269
Epoch 2/2... Discriminator Loss: 2.0397... Generator Loss: 0.2452
Epoch 2/2... Discriminator Loss: 1.7115... Generator Loss: 0.3549
Epoch 2/2... Discriminator Loss: 2.3134... Generator Loss: 0.1715
Epoch 2/2... Discriminator Loss: 2.4941... Generator Loss: 0.1400
Epoch 2/2... Discriminator Loss: 2.5401... Generator Loss: 0.1382
Epoch 2/2... Discriminator Loss: 2.9134... Generator Loss: 0.0944
Epoch 2/2... Discriminator Loss: 2.4782... Generator Loss: 0.1427
Epoch 2/2... Discriminator Loss: 1.9536... Generator Loss: 0.2633
Epoch 2/2... Discriminator Loss: 2.2383... Generator Loss: 0.1985
Epoch 2/2... Discriminator Loss: 1.9822... Generator Loss: 0.3024
Epoch 2/2... Discriminator Loss: 1.7277... Generator Loss: 0.3918
Epoch 2/2... Discriminator Loss: 2.6604... Generator Loss: 0.1136
Epoch 2/2... Discriminator Loss: 1.7201... Generator Loss: 0.3622
Epoch 2/2... Discriminator Loss: 2.9744... Generator Loss: 0.0946
Epoch 2/2... Discriminator Loss: 1.9015... Generator Loss: 0.2823
Epoch 2/2... Discriminator Loss: 3.2911... Generator Loss: 0.0711
Epoch 2/2... Discriminator Loss: 1.8523... Generator Loss: 0.2848
Epoch 2/2... Discriminator Loss: 2.6383... Generator Loss: 0.1228
Epoch 2/2... Discriminator Loss: 2.3858... Generator Loss: 0.1715
Epoch 2/2... Discriminator Loss: 2.2981... Generator Loss: 0.1687
Epoch 2/2... Discriminator Loss: 1.5096... Generator Loss: 1.1674
Epoch 2/2... Discriminator Loss: 2.4509... Generator Loss: 0.1453
Epoch 2/2... Discriminator Loss: 2.1043... Generator Loss: 0.2197
Epoch 2/2... Discriminator Loss: 2.0507... Generator Loss: 0.2421
Epoch 2/2... Discriminator Loss: 0.9229... Generator Loss: 1.0468
Epoch 2/2... Discriminator Loss: 2.9509... Generator Loss: 0.0995
Epoch 2/2... Discriminator Loss: 2.0775... Generator Loss: 0.2401
Epoch 2/2... Discriminator Loss: 1.4480... Generator Loss: 1.6335
Epoch 2/2... Discriminator Loss: 1.6705... Generator Loss: 0.3815
Epoch 2/2... Discriminator Loss: 1.7191... Generator Loss: 0.6745
Epoch 2/2... Discriminator Loss: 2.5743... Generator Loss: 0.1321
Epoch 2/2... Discriminator Loss: 2.5409... Generator Loss: 0.1373
Epoch 2/2... Discriminator Loss: 2.1914... Generator Loss: 0.3758
Epoch 2/2... Discriminator Loss: 1.3503... Generator Loss: 0.6209
Epoch 2/2... Discriminator Loss: 2.2003... Generator Loss: 0.2097
Epoch 2/2... Discriminator Loss: 1.9506... Generator Loss: 0.4719
Epoch 2/2... Discriminator Loss: 1.9350... Generator Loss: 0.2879
Epoch 2/2... Discriminator Loss: 1.8671... Generator Loss: 0.3731
Epoch 2/2... Discriminator Loss: 2.0832... Generator Loss: 0.2333
Epoch 2/2... Discriminator Loss: 1.0559... Generator Loss: 0.9112
Epoch 2/2... Discriminator Loss: 2.1408... Generator Loss: 0.4536
Epoch 2/2... Discriminator Loss: 2.6921... Generator Loss: 0.1160
Epoch 2/2... Discriminator Loss: 1.8428... Generator Loss: 0.2895
Epoch 2/2... Discriminator Loss: 1.4753... Generator Loss: 0.8223
Epoch 2/2... Discriminator Loss: 3.3054... Generator Loss: 0.0706
Epoch 2/2... Discriminator Loss: 1.8533... Generator Loss: 0.2983
Epoch 2/2... Discriminator Loss: 3.0081... Generator Loss: 0.0818
Epoch 2/2... Discriminator Loss: 2.9385... Generator Loss: 0.0979
Epoch 2/2... Discriminator Loss: 2.8968... Generator Loss: 0.0929
Epoch 2/2... Discriminator Loss: 3.0654... Generator Loss: 0.0882
Epoch 2/2... Discriminator Loss: 2.7323... Generator Loss: 0.1191
Epoch 2/2... Discriminator Loss: 2.1373... Generator Loss: 0.2162
Epoch 2/2... Discriminator Loss: 2.2513... Generator Loss: 0.2236
Epoch 2/2... Discriminator Loss: 1.1252... Generator Loss: 1.1275
Epoch 2/2... Discriminator Loss: 2.6335... Generator Loss: 0.1353
Epoch 2/2... Discriminator Loss: 1.8549... Generator Loss: 0.2952
Epoch 2/2... Discriminator Loss: 1.9248... Generator Loss: 0.2719
Epoch 2/2... Discriminator Loss: 1.7537... Generator Loss: 0.3335
Epoch 2/2... Discriminator Loss: 2.5841... Generator Loss: 0.1376
Epoch 2/2... Discriminator Loss: 1.2391... Generator Loss: 0.9561
Epoch 2/2... Discriminator Loss: 2.7439... Generator Loss: 0.1164
Epoch 2/2... Discriminator Loss: 2.2303... Generator Loss: 0.2001
Epoch 2/2... Discriminator Loss: 2.3125... Generator Loss: 0.1795
Epoch 2/2... Discriminator Loss: 2.4662... Generator Loss: 0.1596
Epoch 2/2... Discriminator Loss: 2.8144... Generator Loss: 0.1141
Epoch 2/2... Discriminator Loss: 1.5044... Generator Loss: 1.3747
Epoch 2/2... Discriminator Loss: 2.9419... Generator Loss: 0.0985
Epoch 2/2... Discriminator Loss: 1.5357... Generator Loss: 1.0969
Epoch 2/2... Discriminator Loss: 1.9625... Generator Loss: 0.2662
Epoch 2/2... Discriminator Loss: 1.8335... Generator Loss: 0.2982
Epoch 2/2... Discriminator Loss: 1.7431... Generator Loss: 0.9196
Epoch 2/2... Discriminator Loss: 1.5987... Generator Loss: 0.4735
Epoch 2/2... Discriminator Loss: 2.8365... Generator Loss: 0.1048
Epoch 2/2... Discriminator Loss: 2.5245... Generator Loss: 0.1523
Epoch 2/2... Discriminator Loss: 2.0398... Generator Loss: 0.2395
Epoch 2/2... Discriminator Loss: 0.9636... Generator Loss: 1.3030
Epoch 2/2... Discriminator Loss: 2.0941... Generator Loss: 0.2179
Epoch 2/2... Discriminator Loss: 1.7863... Generator Loss: 0.3364
Epoch 2/2... Discriminator Loss: 3.0744... Generator Loss: 0.0852
Epoch 2/2... Discriminator Loss: 2.7419... Generator Loss: 0.1149
Epoch 2/2... Discriminator Loss: 1.8641... Generator Loss: 0.4593
Epoch 2/2... Discriminator Loss: 2.6892... Generator Loss: 0.1202
Epoch 2/2... Discriminator Loss: 2.4120... Generator Loss: 0.1597
Epoch 2/2... Discriminator Loss: 2.5945... Generator Loss: 0.1375
Epoch 2/2... Discriminator Loss: 2.8682... Generator Loss: 0.0986
Epoch 2/2... Discriminator Loss: 1.4744... Generator Loss: 0.6529
Epoch 2/2... Discriminator Loss: 2.5913... Generator Loss: 0.1378
Epoch 2/2... Discriminator Loss: 0.9973... Generator Loss: 0.9870
Epoch 2/2... Discriminator Loss: 3.6826... Generator Loss: 0.0550
Epoch 2/2... Discriminator Loss: 2.0327... Generator Loss: 0.2433
Epoch 2/2... Discriminator Loss: 2.3629... Generator Loss: 0.1668
Epoch 2/2... Discriminator Loss: 1.7497... Generator Loss: 0.3447
Epoch 2/2... Discriminator Loss: 3.1479... Generator Loss: 0.0694
Epoch 2/2... Discriminator Loss: 1.7998... Generator Loss: 0.3182
Epoch 2/2... Discriminator Loss: 2.6312... Generator Loss: 0.1671
Epoch 2/2... Discriminator Loss: 2.6375... Generator Loss: 0.1210
Epoch 2/2... Discriminator Loss: 2.7350... Generator Loss: 0.1230
Epoch 2/2... Discriminator Loss: 2.5433... Generator Loss: 0.1342
Epoch 2/2... Discriminator Loss: 2.1440... Generator Loss: 0.2698
Epoch 2/2... Discriminator Loss: 2.1448... Generator Loss: 0.2018
Epoch 2/2... Discriminator Loss: 1.6924... Generator Loss: 0.3656
Epoch 2/2... Discriminator Loss: 3.1855... Generator Loss: 0.0785
Epoch 2/2... Discriminator Loss: 2.5588... Generator Loss: 0.1399
Epoch 2/2... Discriminator Loss: 2.1421... Generator Loss: 0.2059
Epoch 2/2... Discriminator Loss: 2.2931... Generator Loss: 0.1863
Epoch 2/2... Discriminator Loss: 1.6703... Generator Loss: 0.4793
Epoch 2/2... Discriminator Loss: 1.3451... Generator Loss: 0.6533
Epoch 2/2... Discriminator Loss: 2.2582... Generator Loss: 0.1861
Epoch 2/2... Discriminator Loss: 1.7602... Generator Loss: 0.3911
Epoch 2/2... Discriminator Loss: 2.6417... Generator Loss: 0.1842
Epoch 2/2... Discriminator Loss: 3.2805... Generator Loss: 0.0727
Epoch 2/2... Discriminator Loss: 2.7842... Generator Loss: 0.1304
Epoch 2/2... Discriminator Loss: 2.7239... Generator Loss: 0.1260
Epoch 2/2... Discriminator Loss: 3.5358... Generator Loss: 0.0608
Epoch 2/2... Discriminator Loss: 2.8663... Generator Loss: 0.1131
Epoch 2/2... Discriminator Loss: 3.0713... Generator Loss: 0.0852
Epoch 2/2... Discriminator Loss: 2.2817... Generator Loss: 0.1949
Epoch 2/2... Discriminator Loss: 2.2829... Generator Loss: 0.2256
Epoch 2/2... Discriminator Loss: 1.2006... Generator Loss: 0.7877
Epoch 2/2... Discriminator Loss: 2.1899... Generator Loss: 0.2063
Epoch 2/2... Discriminator Loss: 3.0979... Generator Loss: 0.0969

Submitting This Project

When submitting this project, make sure to run all the cells before saving the notebook. Save the notebook file as "dlnd_face_generation.ipynb" and save it as a HTML file under "File" -> "Download as". Include the "helper.py" and "problem_unittests.py" files in your submission.